#pragma once

#include "Types.h"
#include "ActorValue.h"
#include "IActorComponent.h"

#include <map>

class CEntity : public TRefCount<CEntity> {
public:
	 
	static s32 createUniqueID(void) {
		static s32 id_count = 0;
		return id_count++ ;
	}

	const std::map<char *,CActorValue*> & getValues(void) {
		return mValues;
	}

	CActorValue * getValue(char *name) {
		return mValues[name];
	}

	DECLARE_MEMBER(s32, ID)
	DECLARE_MEMBER(E_GAMEOBJECT_TYPE, Type)
private:
	std::map<char *,CActorValue*> mValues;
};